package com.td.module.agro.controller.admin.review.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import static com.td.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel(value = "管理后台 - 溯源信息 Excel 导出 Request VO", description = "参数和 ReviewPageReqVO 是一致的")
@Data
public class ReviewExportReqVO {

    @ApiModelProperty(value = "数据层面", example = "2")
    private Integer pollingType;

    @ApiModelProperty(value = "农产品名称", example = "王五")
    private String agroProductName;

    @ApiModelProperty(value = "农产品类别（1.粮油作物 2.瓜果、蔬菜 3.食用菌 4.花卉、苗木 5.药材）", example = "1")
    private Integer agroProductType;

    @ApiModelProperty(value = "农产品描述")
    private String agroProductDescribe;

    @ApiModelProperty(value = "农产品产地")
    private String agroProductOrigin;

    @ApiModelProperty(value = "农产品制造商")
    private String agroProductManufacturer;

    @ApiModelProperty(value = "农产品价格", example = "19407")
    private BigDecimal agroProductPrice;

    @ApiModelProperty(value = "农产品重量")
    private BigDecimal agroProductWeight;

    @ApiModelProperty(value = "储存方式（1.常规储存 2.沟藏和堆藏 3.窖窑储存 4. 冷藏储存 5.气调保鲜储存）")
    private Integer storageMethod;

    @ApiModelProperty(value = "包装方式（1.防潮包装 2.防水包装 3.防霉包装 4.充气包装 5.真空包装 6.冷冻包装）")
    private Integer packagingMethod;

    @ApiModelProperty(value = "储存时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String[] storageTime;

    @ApiModelProperty(value = "生产日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] produceDate;

    @ApiModelProperty(value = "环境监测类别(1.土地、2.水质)", example = "1")
    private Integer environmentMonitoringType;

    @ApiModelProperty(value = "环境监测方式（0.无监测 1化学监测，2物理监测，3生物监测，4生态监测）")
    private Integer environmentMonitoringMethod;

    @ApiModelProperty(value = "环境监测负责人")
    private String environmentMonitoringPerson;

    @ApiModelProperty(value = "环境监测结果（0.不合格 1.合格）")
    private Integer environmentMonitoringResult;

    @ApiModelProperty(value = "环境监测开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] environmentMonitoringStartTime;

    @ApiModelProperty(value = "环境监测结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] environmentMonitoringEndTime;

    @ApiModelProperty(value = "生产视频监控地址（生产视频）", example = "https://www.iocoder.cn")
    private String produceVideoMonitorUrl;

    @ApiModelProperty(value = "生产视频监控时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] produceVideoMonitorTime;

    @ApiModelProperty(value = "质量检测机构")
    private String qualityTestOrganization;

    @ApiModelProperty(value = "质量检测负责人")
    private String qualityTestPerson;

    @ApiModelProperty(value = "质量检测方式（0.无检验 1. 集中检验 2. 现场检验 3. 流动检验(巡检)）")
    private Integer qualityTestMethod;

    @ApiModelProperty(value = "质量检测项目与依据")
    private String qualityTestProjectBasis;

    @ApiModelProperty(value = "质量检测结果（0.抽检不合格 1.抽检合格）")
    private Integer qualityTestResult;

    @ApiModelProperty(value = "送检日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] qualityTestSamplingTime;

    @ApiModelProperty(value = "质量检测日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] qualityTestTime;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
